#!/usr/bin/env bash
# 特殊变量

# 脚本名称(有路径的话，路径也显示常用来提示用户输入时语法错误)
echo $0

# 传递给脚本或函数的参数。n 是一个数字，表示第几个参数。例如，第一个参数是$1，第二个参数是$2。
echo $1

# 传递给脚本或函数的参数个数。
echo $#

# 传递给脚本或函数的所有参数。
echo $*

# 传递给脚本或函数的所有参数。被双引号("")包含时，与 $* 稍有不同，下面将会讲到。
echo $@

# 上个命令的退出状态，或函数的返回值。
echo $?

# Shell最后运行的后台Process的PID(后台运行的最后一个进程的进程ID号)
echo $!

# 当前Shell进程ID。对于 Shell 脚本，就是这些脚本所在的进程ID。
echo $$

# 注意
# 不被双引号(" ")包含时：$*输出："$1" "$2" … "$n"、$@输出："$1" "$2" … "$n"
# 被双引号(" ")包含时：$*输出："$1 $2 … $n"、$@输出："$1" "$2" … "$n"


# 脚本中： return 数值==>此数字会给$?
fun01(){
    return 1
}

fun02(){
    return 2;
}

# 函数中： exit 数值==>此数字会给$? 运算
fun01
echo $?

fun02
echo $?

exit 0